
function 激活代理(time) {
    utils.openApp("com.tunnelworkshop.postern")
    toast("启动Postern");
    sleep(time || 2000);
    //跑5次就行,不要跑多了
    for (let i = 0; i < 5; i++) {
        sleep(2000);
        if (has(text("添加代理服务器"))) {
            toast("激活成功")
            sleep(1000);
            return true
        }
        toast("检测激活...")
    }
    return false
}

function 是否被封号(){
    return has(text("查看审核状态")) || has(text("同意并继续")) || has(text("登录")) || has(desc("查看审核状态"))
}





function 养号(){}


function 时间戳最后一位(){
    toast('时间戳'+time().toString().slice(-1));
    return time().toString().slice(-1)
}

function 获取好友列表(){
    好友列表 =  file.readAllLines(好友文件名)
    if(!好友列表){
        toast("暂无好友...")
        return false
    }
    return true
}

function 好友检测(号码){
    if(!好友列表 || !好友列表.length){
        return false
    }
    if(好友列表.indexOf(号码) === -1){
        return false
    }
    return true
}

function 获取当前列表可回复的数据(){
    let node = 获取当前聊天列表数据()

    let nNode = node.filter(item => {
        return has(node.child().id('com.whatsapp:id/conversations_row_message_count'))
    })

    if(!nNode.length){
        toast("暂无可回复数据");
        随机停留时间(1,7)
    }


    return nNode

}

function 获取当前列表不可回复的数据(){
    let node = 获取当前聊天列表数据()

    let nNode = node.filter(item => {
        return !has(node.child().id('com.whatsapp:id/conversations_row_message_count'))
    })

    if(!nNode.length){
        toast("暂无可回复数据");
        随机停留时间(1,7)
    }

    return nNode

}

function 获取当前聊天列表电话信息(){
    let node = 获取当前聊天列表数据()
    let nNode = node.map(item => {
        return node.child().id('com.whatsapp:id/conversations_row_contact_name').getOneNodeInfo(0)
    })

    if (!nNode.length){
        toast('当前列表可能不是聊天列表或者数据获取出错')
        return []
    }

    return nNode


}

function 获取当前聊天列表数据(){

    toast('获取当前聊天列表数据')

    var node = id('com.whatsapp:id/contact_row_container').getNodeInfo(1000)


    node = node ? node.filter(item => item.pkg === 包名):[]


    if(!node.length){
        toast("聊天列表暂无数据")
        return []
    }

    return node
}


function 随机停留时间(min,max,mult,otherTime){
    min == 0 ? 1 : min
    toast('随机停留时间: ' + random(min,max) * (mult || 1000));
    sleep(random(min,max) * (mult || 1000) + otherTime||0);
}










function 读取陌生人文件夹数据(){
    let phone = file.readLine(陌生人文件名,1)
    if(phone){
        currentPhone = ''
        while(true){
            toast('已无外部好友可用')
            sleep(3000);
        }

        return false
    }
    currentPhone = phone
    ll.contact.addContact(phone,phone,'')
    for (let i = 0; i < 10; i++) {
        sleep(1000);
        toast("等待app加载数据..." + phone + "..." + i)
    }
    return true
}



function 找图(x, y, z, h) {
    let smallTmplate = readResAutoImage("WA.png");
    let screenImage = image.captureFullScreen();
    if (screenImage != null) {
        let points = image.findImage(screenImage, smallTmplate, x, y, z, h, 0.7, 0.8, 10, 5);
        if (points) {
            image.recycle(screenImage)
            toast("WAB")
            return "wab"
        }
        toast("WA")
        image.recycle(screenImage)
        return "wa"
    }
    toast("WA")
    image.recycle(smallTmplate)
    return 'wa'
}









function autoServiceStart(time) {
    for (var i = 0; i < time; i++) {
        if (isServiceOk()) {
            return true;
        }
        var started = startEnv();
        logd("第" + (i + 1) + "次启动服务结果: " + started);
        if (isServiceOk()) {
            return true;
        }
    }
    return isServiceOk();
}

function 获取私信文件信息(){
    let str = file.readFile(path)
    let data = str.split('---')
    let 文件日期 = data[0]
    let 个数 = data[1] || 0
    return [文件日期,个数]
}

function 群发上限判定(){
    let path = 账号类型 === '新号' ? 新号私信个数记录 : 老号私信个数记录
    let [文件日期,个数] = 获取私信文件信息()
    let 当前日期 = laoleng.http.getNetTimeStamp() || time()
    当前日期 = new Date().getFullYear()

    if(文件日期 !== 当前日期){
    //清空文件
        file.deleteAllFile(path)
        file.create(path)
        file.writeFile(当前日期 + '---' + 0, "/sdcard/test.txt");
        toast(当前日期 +': 群发上限----文档重置...')
        return false
    }
    let flag = 个数 >= 群发人数上限
    if(flag){
        toast(账号类型 + '--当天--私信任务结束---'+ 个数+'个')
        随机停留时间(1,3)
    }else {
        toast(账号类型 + '--当天已私信---'+ 个数 + '个')
        随机停留时间(1,3)
    }

    return flag
}



function 回复(){}

function 好友互聊(count){}



//开启代理时,每次清空后台
function 开启代理(){

       if(激活代理()){
           return true
       }else {
           toast("代理激活失败,稍后重新激活")
           sleep(1000)
           home()
           sleep(1000);
           for (let i = 0; i < 5; i++) {
               toast("清理后台");
               recentApps()
               sleep(1000);
               if (has(id("com.sec.android.app.launcher:id/snapshot"))) {
                   sleep(500);
                   click(text("全部关闭"))
                   sleep(1000);
                   break
               }
           }
       }


}

//检测好友是否有连续3条未回复的消息
function 消息检测(){}




function 进入whatsapp聊天框(){

}

function 进入朋友圈() {
    click(text("更新").selected(false))
}

function 进入对话列表(){
   return click(text('对话').selected(false))
}

function 回到顶部(){
    const el = id("android:id/list")
    if(!has(el)){
        toast("滚动元素不存在")
        return
    }
    let lTime =0
    while(true){
        if(isScrollEnd("UP", el)){
            toast("已经到了顶部了")
            return
        }
        scrollBackward(el)

        随机停留时间(2,8,500,lTime)

    }


}


function 像下滚动(count,el,cb,min,max){
    count = count ? count : 0
    el = el || id("android:id/list")
    if(!has(el)){
        toast("滚动元素不存在")
        随机停留时间(min|| 1,max || 5)
        return
    }
    for (let i = 0;i<count;i++){
        if(isScrollEnd("DOWN", el)){
            toast("已经到底部了.无需滚动")
            return
        }
        cb && cb()
        scrollForward(el)
        随机停留时间(2,8,500)
    }


}

function 主界面随机停留(min,max,mult){

    进入对话列表()

    随机停留时间(min,max,mult)

}

//如果超出三条对方未回复则不发消息
function 聊天信息检测(){
    let node = id('com.whatsapp:id/conversation_text_row').getNodeInfo(1000)
    if(!node){
        toast('无聊天信息...')
        return false
    }
    //获取自己的信息
    // node = node.filter(item=>item.bounds.left > 48 &&  item.bounds.right > 1030 )
    //
    let count = 0
    for(let i = len=node.length;i>=0;i--){
        let item = node[i]
        if(item=>item.bounds.left > 48 &&  item.bounds.right > 1030 ){
            count++
        }else {
            break
        }
    }
  //  返回true,可以发送消息
  return count <= 3
}


function 休眠(){
    let str =file.readFile(群发记录文档)
    str+='T'
    file.writeFile(str,群发记录文档)
    sleep(7*60*60*1000)
    exit()
}



function 去通讯录(){
    utils.openApp("com.samsung.android.app.contacts")
    sleep(1000);
    for (let i = 0; i < 30; i++) {
        click(desc("搜索").id("com.samsung.android.app.contacts:id/menu_search"))
        sleep(500)
        inputText(id("com.samsung.android.app.contacts:id/search_src_text"), currentPhone)
        sleep(500)
        if (has(text(currentPhone).id("com.samsung.android.app.contacts:id/contact_list_item_sub"))) {
            click(text(currentPhone).id("com.samsung.android.app.contacts:id/contact_list_item_sub"))
            sleep(3000);
        } else {
            if (has(textMatch(currentPhone + "$").id("com.samsung.android.app.contacts:id/contact_list_item_sub"))) {
                click(textMatch(currentPhone + "$").id("com.samsung.android.app.contacts:id/contact_list_item_sub"))
                sleep(3000);
            }
        }
        if (has(text(currentPhone).id("com.samsung.android.app.contacts:id/contact_list_item_main"))) {
            click(text(currentPhone).id("com.samsung.android.app.contacts:id/contact_list_item_main"))
            sleep(3000);
        }
        sleep(500);
        if (has(id("com.samsung.android.app.contacts:id/display_number"))) {
            if (has(id("com.samsung.android.app.contacts:id/header").text(currentPhone))) {
                if (has(text("历史记录"))) {
                    toast("搜索成功")
                    sleep(1000);
                    return true
                } else {
                    scrollForward(id("com.samsung.android.app.contacts:id/content_scroller"))
                }
            } else {
                clickEx(desc("向上导航"))
                sleep(1000);
            }
        }
        removeNodeFlag(0)
        toast("搜索通讯录..." + currentPhone)
    }
    return false
}

function 通讯录跳转对话框(){
    while (true) {
        let node = textMatch("发送消息给").getNodeInfo(5000)
        if (node) {
            if (node.length == 2 || 异常 == 2) {
                for (let i = 0; i < node.length; i++) {
                    let x = node[i].parent().parent().parent()
                    if (x) {
                        toast("判断号码归属: " + node[i].text)
                        if (找图(x.bounds.left, x.bounds.top, x.bounds.right, x.bounds.bottom) == 应用) {

                                if (has(desc("编辑联系人"))) {
                                    x.clickEx()
                                    sleep(2000);

                                    return true
                                }

                        }
                    }
                }

                toast("跳过该用户:" + currentPhone);
                return false
            } else {
                toast("继续等待刷新5秒刷新")
                sleep(5000);
                return false
            }
        }

            return false



    }
}